There is often a need to run diagnostic software on the hardware and software components of computer systems owned by or in the custody of end-users. Typically, computer system manufacturers ship their hardware and/or software with a limited subset of diagnostic software programs which provides rudimentary information. If this rudimentary information indicates the need for further attention, an expert technician may run additional tests or invoke recovery processes using advanced diagnostic software that should best be run by experts.
Advanced diagnostic software typically represents significant intellectual property to the diagnostic software provider. For various reasons, it is important that this software not be allowed to become copied or run without authorization. Some reasons for this include:
The advanced diagnostic software may “unlock” additional features of the computer system which are normally charged for by the computer hardware or software vendor or the advanced diagnostic software may be used to circumvent licensing restrictions.
Installation and configuration of the advanced diagnostic software may be beyond the scope of the abilities of the end-user.
The advanced diagnostic software could be used to change vendor and/or product identification data which would allow somebody to re-brand a device and create a grey market or counterfeit product.
The advanced diagnostic software, if improperly run, could result in destruction of data or change performance characteristics of the computer system.
Unlike floppy disks and tapes, many operating systems (Microsoft Windows family, LINUX, and Apple OSX) automatically recognize and mount USB memory as removable hard disks and/or CD-ROM devices. There is also a common file system and data format, so the same device can work on multiple operating systems, without the need for reformatting.
The advanced diagnostic software may be licensed for use on only a single host computer system. In this case, the user's technicians will be authorized to run the diagnostic software only in a limited scope and/or for a temporary period of time. However, the provider of the advanced diagnostic software does not want to risk the user making unauthorized copies.
Sometimes diagnostic software is built into a large and expensive hardware component such as a fibre channel analyzer or a more advanced switch that is not available on-site. In this event, an engineer has to acquire and transport the hardware component to the end-user site. Because USB solid-state memory is small and inexpensive, transporting a USB memory through airport security or customs is significantly less stressful and time-consuming consuming then dealing with a large and valuable piece of equipment that might have otherwise need be checked as baggage or shipped overnight at high cost and high risk of damage. Furthermore, while such analyzer equipment may have imbedded software and ability to record diagnostic reports for a limited set of devices, the USB solid-state memory diagnostic software device of the present invention, is more flexible because it can store diagnostic software for virtually any system, can change the set of diagnostic software that it employs to gain the ability to diagnose new and different systems, is a more convenient means of introducing diagnostic software to diagnose the customers' equipment at the customer's site, and is less likely to be lost, stolen, or damaged in transport.
Where the computer system to be diagnosed was sold to an end user by a reseller or agent, the computer system may often be maintained and supported by technicians of the reseller or agent who are unconnected to the provider of the advanced diagnostic software. In this case, a technician of the reseller or agent may be authorized to use one copy the provider's advanced diagnostic software to support and maintain one end user's computer system in a limited manner. Unfortunately, however, there is a great incentive on the part of these technicians to wrongfully make unauthorized copies of the advanced diagnostic software and/or to wrongfully leave copies of the advanced diagnostic software resident on the end user's computer system, without receiving proper authorization from the provider of the diagnostic software. Because these technicians are highly trained computer experts, they are often able to defeat common devices intended to prevent unauthorized copying and/or use of software.
Prior efforts to prevent unauthorized copying and use of other types of software are not generally effective for preventing unauthorized copying and use of advanced diagnostic software. For example, “dongle” devices that contain an authentication code and are physically attached to a port in order to use a software product still require the software to be loaded onto the end user's computer system in order to allow the software to run. Expert computer users are generally able to defeat the anti-copying features of such dongle devices by “tricking” the computer system into “thinking” that the proper dongle device is attached.
Use of a CD-ROM to store the advanced diagnostic software is also not a satisfactory solution, because expert computer users can simply copy a CD-ROM bit-for-bit. Also, the data resulting from the diagnosis cannot be written to the CD-ROM, which makes use of the diagnostic software less convenient.
Use of a writable CD or floppy disk to store the advanced diagnostic software is also not a complete solution. Even if the writable CD or floppy disk is serialized and password-protected, an expert computer user can perform a bit-for-bit copy of the CD or floppy disk and can determine the serial number and passwords to defeat the protections against unauthorized use.
Therefore, there is a need for a method and/or apparatus for securing diagnostic software that addresses at least some of the problems associated with conventional methods and apparatuses for securing software.